package com.sojson.util.encryption;

/**
 * 加密工具类接口
 * 
 * @author liu
 * @Date 2020-06-29 10:28:03
 * @Description
 *
 */
public interface EncryptionUtilInterface {

    /**
     * 不可逆的加密方法
     * 
     * @param inStr
     * @return
     * @throws Exception
     */
    String encryption(String inStr) throws Exception;

    /**
     * 不可逆的加密方法
     * 
     * @param inStr
     * @param key 加密密钥
     * @return
     * @throws Exception
     */
    String encryption(String inStr, String key) throws Exception;

    /**
     * 可逆的加密方法
     * 
     * @param inStr
     * @return
     */
    String encryptionReversible(String inStr);

    /**
     * 可逆的加密方法
     * 
     * @param inStr
     * @param key 加密密钥
     * @return
     */
    String encryptionReversible(String inStr, String key);

    /**
     * 解密方法
     * 
     * @param inStr
     * @return
     */
    String decryption(String inStr);

    /**
     * 解密方法
     * 
     * @param inStr
     * @param key 解密密钥
     * @return
     */
    String decryption(String inStr, String key);

    /**
     * 解密方法
     * 
     * @param inStr
     * @return
     */
    byte[] decryption(byte[] inStr);

    /**
     * 解密方法
     * 
     * @param inStr
     * @param key 解密密钥
     * @return
     */
    byte[] decryption(byte[] inStr, String key);

}